using System;
using System.Runtime.InteropServices;
namespace BMC.ARSystem
{
	[ARStructTypeInfo(Name = "ARCOMMethodParmStruct", NumberOfMembers = 3u), ClassInterface, Guid("ea29cd08-b707-4761-bfd0-f9c508825cde"), ProgId("BMC.ARSystem.COMMethodParm")]
	public class COMMethodParm
	{
		[ARStructMemTypeInfo(Name = "parmName", Offset = 0u)]
		private string _parmName;
		[ARStructMemTypeInfo(Name = "parmType", Offset = 1u)]
		private uint _parmType;
		[ARStructMemTypeInfo(Name = "parmValue", Offset = 2u)]
		private COMValue _parmValue;
		public string ParmName
		{
			get
			{
				return this._parmName;
			}
			set
			{
				this._parmName = value;
			}
		}
		public uint ParmType
		{
			get
			{
				return this._parmType;
			}
			set
			{
				this._parmType = value;
			}
		}
		public COMValue ParmValue
		{
			get
			{
				return this._parmValue;
			}
			set
			{
				this._parmValue = value;
			}
		}
		public COMMethodParm()
		{
		}
		internal COMMethodParm(object rawData, Server server)
		{
			int[] indexSpec = new int[1];
			this.ParmName = (string)Util.GetAt(rawData, indexSpec);
			this.ParmType = Convert.ToUInt32(Util.GetAt(rawData, new int[]
			{
				1
			}));
			this.ParmValue = (COMValue)ARTypeMgr.Instance.ObjectFromVariant(typeof(COMValue), Util.GetAt(rawData, new int[]
			{
				2
			}), server);
		}
		internal static COMMethodParm createInstance(object[] rawData, Server server)
		{
			return new COMMethodParm(rawData, server);
		}
	}
}
